package com.ruoyi.demo.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品信息对象 auction_goods
 *
 * @author metaee
 * @date 2025-02-24
 */
@ApiModel("商品信息对象")
public class AuctionGoods extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 商品ID */
    private Long goodsId;

    /** 分类ID */
    @ApiModelProperty("分类ID")
    @Excel(name = "分类ID")
    private Long categoryId;

    /** 发布用户ID */
    @ApiModelProperty("发布用户ID")
    @Excel(name = "发布用户ID")
    private Long userId;

    /** 商品名称 */
    @ApiModelProperty("商品名称")
    @Excel(name = "商品名称")
    private String goodsName;

    /** 商品描述 */
    @ApiModelProperty("商品描述")
    @Excel(name = "商品描述")
    private String goodsDesc;

    /** 起拍价 */
    @ApiModelProperty("起拍价")
    @Excel(name = "起拍价")
    private BigDecimal startPrice;

    /** 当前价格 */
    @ApiModelProperty("当前价格")
    @Excel(name = "当前价格")
    private BigDecimal currentPrice;

    /** 加价幅度 */
    @ApiModelProperty("加价幅度")
    @Excel(name = "加价幅度")
    private BigDecimal stepPrice;

    /** 商品图片(逗号隔开) */
    @ApiModelProperty("商品图片(逗号隔开)")
    @Excel(name = "商品图片(逗号隔开)")
    private String images;

    /** 开始时间 */
    @ApiModelProperty("开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /** 结束时间 */
    @ApiModelProperty("结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /** 状态(字典：auction_goods_status) */
    @ApiModelProperty("状态")
    @Excel(name = "状态", readConverterExp = "状态(字典：auction_goods_status)")
    private String status;

    /** 是否包含已结束商品（查询参数） */
    @ApiModelProperty("是否包含已结束商品")
    private Boolean includeEnded;

    public void setGoodsId(Long goodsId) {
        this.goodsId = goodsId;
    }

    public Long getGoodsId() {
        return goodsId;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    public Long getCategoryId() {
        return categoryId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsDesc(String goodsDesc) {
        this.goodsDesc = goodsDesc;
    }

    public String getGoodsDesc() {
        return goodsDesc;
    }

    public void setStartPrice(BigDecimal startPrice) {
        this.startPrice = startPrice;
    }

    public BigDecimal getStartPrice() {
        return startPrice;
    }

    public void setCurrentPrice(BigDecimal currentPrice) {
        this.currentPrice = currentPrice;
    }

    public BigDecimal getCurrentPrice() {
        return currentPrice;
    }

    public void setStepPrice(BigDecimal stepPrice) {
        this.stepPrice = stepPrice;
    }

    public BigDecimal getStepPrice() {
        return stepPrice;
    }

    public void setImages(String images) {
        this.images = images;
    }

    public String getImages() {
        return images;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public Boolean getIncludeEnded() {
        return includeEnded;
    }

    public void setIncludeEnded(Boolean includeEnded) {
        this.includeEnded = includeEnded;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("goodsId", getGoodsId())
                .append("categoryId", getCategoryId())
                .append("userId", getUserId())
                .append("goodsName", getGoodsName())
                .append("goodsDesc", getGoodsDesc())
                .append("startPrice", getStartPrice())
                .append("currentPrice", getCurrentPrice())
                .append("stepPrice", getStepPrice())
                .append("images", getImages())
                .append("startTime", getStartTime())
                .append("endTime", getEndTime())
                .append("status", getStatus())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
